From: Keir Fraser Date: Fri, 14 Jan 2011 14:18:31 +0000 (+0000) Subject: x86 acpi: Fix crash in enable_nonboot_cpus() on wakeup from S3/S4 X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~10918^2~7 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=9d9af7dca878fb6f85ddf3cf3cb43df273f6b5a0;p=xen.git x86 acpi: Fix crash in enable_nonboot_cpus() on wakeup from S3/S4 Bringing a CPU back online can require RCU work to be flushed, because the per-cpu data from last time the CPU was online may not yet be deallocated. Use the new rcu_barrier() interface function to achieve this. Signed-off-by: Keir Fraser --- diff --git a/xen/arch/x86/acpi/power.c b/xen/arch/x86/acpi/power.c index b4a633d544..5dfdeb431f 100644 --- a/xen/arch/x86/acpi/power.c +++ b/xen/arch/x86/acpi/power.c @@ -206,6 +206,7 @@ static int enter_state(u32 state) enable_cpu: cpufreq_add_cpu(0); microcode_resume_cpu(0); + rcu_barrier(); mtrr_aps_sync_begin(); enable_nonboot_cpus(); mtrr_aps_sync_end();